雖然理想中的 Clean Code 應該具備自我解釋的能力,但實際在開發過程中,撰寫註解仍然是必要的,特別是在協作開發和專案交接的情況中。以下是撰寫註解的主要原因:
提醒
然而,撰寫註解在某些情況下雖然重要,但不應該當作掩飾品質差的程式碼之功用。應該以良好的命名和結構來減少對註解的依賴,但在面對複雜邏輯、特定業務需求或團隊合作時,適當的註解仍然是不可或缺的輔助手段。
註解撰寫原則:
範例 1. function 底下請寫註解、業務功能說明、return 說明
function calculateDiscountedPrice(price, discount) {
/* 計算商品折扣價格(title)
1. 如果折扣大於 50%,則視為不合法,將折扣設為 50%,避免極端促銷導致的虧損。(說明 1:業務功能需求。)
2. return 計算後的折扣價格(說明2:說明結果。)
*/
if (price < 0) {
throw new Error("價格不能為負數");
}
if (discount > 0.5) {
discount = 0.5;
}
return price * (1 - discount);
}
let price = 100;
let discount = 0.6;
console.log(calculateDiscountedPrice(price, discount));
範例 2. 接外部 API 、TO-DO 提醒
async function getWeatherData(city) {
/* 向外部天氣 API 請求天氣資料(title)
1. TO-DO 錯誤檢查強化:應更具體地區分錯誤的類型,例如是否是網路連接問題、API 回應格式錯誤、或是伺服器端的問題。
*/
const apiKey = "YOUR_API_KEY";
const apiUrl = `https://api.weather.com/v3/weather/forecast?city=${city}&key=${apiKey}`;
try {
const response = await fetch(apiUrl);
// 檢查API回應是否正常
if (!response.ok) {
throw new Error("無法獲取天氣數據");
}
// 返回JSON格式的天氣數據
return await response.json();
} catch (error) {
// TODO: 錯誤處理待改善,應加強錯誤檢查邏輯
console.error("獲取天氣數據時發生錯誤:", error);
}
}
getWeatherData("Taipei").then(data => console.log(data));